I. Field
The disclosed embodiments relate to security systems, methods, and apparatuses.
II. Background
Numbers, symbols, and random numbers have many uses in science, engineering, statistics, risk analysis, video gaming, gambling, and other fields. Numbers can be used as codes. For example, your debit card pin number. Symbols may be used for communication. For example, flags used in semaphore. Random numbers can be used for electronic casino games. The casino games contain random number generators which decide the outcome of a game. Mathematically speaking, there are distinctions between numbers, random numbers, pseudo-random, and quasi-random numbers. Random, pseudo-random or quasi-random may be generically referred to as “random” numbers. Truly random numbers are unpredictable. Whereas, pseudo-random numbers, for example, may be predictable if the seed values are know.
A simple method for generating a random number is to take a coin and flip it over and over again. A heads may be a “1” and a tails may be a “0.” Obviously, that method is impractical in today's digital age. Another method of generating a random number is by using a software implemented random number generator (RNG). A random number generator, broadly speaking, may take a seed number and run an algorithm to create a fairly random number (pseudo random), but eventually the number will repeat. Another method of generating a random number may be to measure radioactive decay. Another method may be to measure a user's series of mouse movements long enough to create a random number. Varying degrees of the quality of the randomness varies on the application. For example, random numbers generated with an RNG are often sufficient for things like a Monte Carlo risk analysis. However, fields like cryptology require a higher degree of randomness.
Some of the most difficult encryptions to break use randomness in some form. The basic principal being that randomness can increase the amount of computation power, termed the “work factor” by Claude Shannon, needed to decrypt. For example, a well known symmetric key encryption based on randomness is called the Vernam's stream cipher. This cipher can be proven to be secure against any adversary no matter how much computing power is available if correctly implemented.
Needless to say, with the advent of the digital age, the need for robust security and authentication has greatly increased. In conjunction, the complexity of encryption and decryption has also increased. Consumers today engage in many financial transactions online. Sensitive medical information is stored and transmitted electronically. Businesses want to transact negotiations or mergers securely to prevent competitors from knowing. Companies want their employees to be able to log into their networks securely from home. Consumers need to be able to know that their information is secure and that only the intended receiver is viewing the information. Computers can make codes more complex and more difficult to break, but at the same time enabling hackers with powerful code breaking tools.
For example, computer processing power can help break codes through “brute-force.” A brute-force attack uses the speed of computers to try each of the variations to find the key. A computer can run through the possibilities much faster than a person could by hand. Protecting the key is also important. If you can get ahold of the key, then you can easily decrypt the message. So methods that send a key or expose parts of the key to third parties are weaker systems. Some codes have been broken because parts of the keys were exposed. So protecting the keys from third party exposure, may help strengthen the code.
Therefore there is a need in the art for a simple and practical way to produce a random number for applications that use them. Moreover, there is a need to create a random number (a.k.a. key) for security applications without exposing the key to other parties. Therefore, there is a need in the art for a security system, method, and apparatus.